package controleurs;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFileChooser;

import modele.CollectionBD;
import modele.ModeleP;
import vues.MainFrame;
/**
 *  Controleur du Menu de la fenetre principale, permet la gestion des comportements primaires du programme, tels que la sauvegarde, la fermeture, la creation de nouvelles bibliotheques ou BD.
 *  @author Coudeville
 *  
 */
public class MyMenuListener implements ActionListener{
	private ModeleP myMainModele;
	private MainFrame myFrame;
	public MyMenuListener(MainFrame frame){
		this.myFrame=frame;
	}
	public MyMenuListener(ModeleP main, MainFrame f){ //Constructeur Final
		this.myMainModele=main;
		this.myFrame=f;
	}
	public void actionPerformed(ActionEvent arg0) {
		String[] action=arg0.getActionCommand().split(":");
		if(action[0].equals("lnf")){
			myFrame.setLNF(Integer.parseInt(action[1]));
		}
		else if(action[0].equals("alb")){
			switch(Integer.parseInt(action[1])){
				case 0:	myMainModele.aDebut(); //Ajout d'un album
				break;
				case 1: myMainModele.mDebut(); //Modification d'un album
				break;
				case 2 : myMainModele.supprimer(); //Suppression d'un album
			}
		}
		else if(action[0].equals("file")){
			switch(Integer.parseInt(action[1])){
				case 0 : //Nouvelle Bibliotheque
					myMainModele.setBD(new CollectionBD());
					break;
				case 1 : //Ouverture Bibliotheque
					int returnVal = myFrame.fc.showOpenDialog(myFrame.f);
					if (returnVal == JFileChooser.APPROVE_OPTION) {
						myMainModele.setBD(CollectionBD.genererBDteque(myFrame.fc.getSelectedFile().getAbsolutePath()));
					}
					break;
				case 2 :  //Enregistrement
					if(!(myMainModele.getCollec().getCheminPere()==null)){
						CollectionBD.sauvegarder(myMainModele.getCollec(), myMainModele.getCollec().getCheminPere());
						break;
					}
				case 3 : //Enregistrement sous
					returnVal = myFrame.fc.showSaveDialog(myFrame.f);
					if (returnVal == JFileChooser.APPROVE_OPTION){
						CollectionBD.sauvegarder(myMainModele.getCollec(), myFrame.fc.getSelectedFile().getAbsolutePath());
					}
					break;
			}
		}else if(action[0].equals("aid")){
			switch(Integer.parseInt(action[1])){
			case 0 : //Consultation JavaDoc
				break;
			case 1 : //A Propos DE NOUS ! :D
				myFrame.aPropos();
				break;
			}
		}
	}

}
